Python Python基本命令数组的一些操作

环境

window10
python = 3.7

命令

reshape 将数组转换为二维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 导入需要用到的package
import numpy as np
import json

# 假设 data 是一维数组
datatest = np.array([4, 3, 2, 5, 1,6])
# 如果 data 有一个特征,可以使用 reshape(-1, 1) 将其转换为二维数组
data_2d1 = datatest.reshape(-1, 1)
print("#################### data_2d1 ####################")
print(data_2d1)
# 如果 data 只有一个样本,可以使用 reshape(1, -1) 将其转换为二维数组
data_2d2 = datatest.reshape(1, -1)
print("#################### data_2d2 ####################")
print(data_2d2)
# 想获得,两个样本,每个样本三个数据,可以使用 reshape(2, 3) 将其转换为二维数组
data_2d3 = datatest.reshape(2, 3)
print("#################### data_2d3 ####################")
print(data_2d3)
# 想获得,三个样本,每个样本俩个数据,可可以使用 reshape(3,2) 将其转换为二维数组
data_2d4 = datatest.reshape(3,2)
print("#################### data_2d4 ####################")
print(data_2d4)

输出如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#################### data_2d1 ####################
[[4]
[3]
[2]
[5]
[1]
[6]]
#################### data_2d2 ####################
[[4 3 2 5 1 6]]
#################### data_2d3 ####################
[[4 3 2]
[5 1 6]]
#################### data_2d4 ####################
[[4 3]
[2 5]
[1 6]]

max(axis=0)和min(axis=0) 获得二维数组中,样本的最大值和最小值,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 导入需要用到的package
import numpy as np
import json

# 假设 data 是二维数组
datatest2 = np.array([[4,3],[2,5],[1,6]])

maximums1, minimums1 = datatest2.max(axis=0), datatest2.min(axis=0)

print("#################### maximums1 ####################")
print(maximums1)
print("#################### minimums1 ####################")
print(minimums1)

```
输出为

#################### maximums1 ####################
[4 6]
#################### minimums1 ####################
[1 3]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


#### 数组内冒号的用法

##### 数组内单冒号的用法 [:]
```
# 导入需要用到的package
import numpy as np
import json

# 假设 data 是一维数组,其长度为 n
datatest = np.array([4, 3, 2, 5, 1,6])

#数字在前,且为正整数,一个冒号在后,则是表示,取以左侧数字为数组下标以及以后的数字(包含下标)
dataMh1 = datatest[1:]
print("#################### dataMh1 ####################")
print(dataMh1)
#一个冒号在后,数字在后,且为正整数,则是表示,取以右侧侧数字为数组下标以及以前的数字(不包含下标)
dataMh2 = datatest[:3]
print("#################### dataMh2 ####################")
print(dataMh2)
#数字在前,且为负整数,一个冒号在后,则是表示,取以数组长度加数字(负数数字)右侧数字为数组下标以及以后的数字(包含下标) 6 +(-1)=5 即 datatest[-1:] = datatest[5:]
dataMh3 = datatest[-1:]
dataMh33 = datatest[5:]
print("#################### dataMh3 ####################")
print(dataMh3)
print(dataMh33)
#一个冒号在后,数字在后,且为负整数,则是表示,取以数组长度加数字(负数数字)右侧数字为数组下标以及以前的数字(包含下标) 6 +(-1)=5 即 datatest[:-1] = datatest[:5]
dataMh4 = datatest[:-1]
dataMh44 = datatest[:5]
print("#################### dataMh4 ####################")
print(dataMh4)
print(dataMh44)
1
2
3
4
5
6
7
8
9
10
#################### dataMh1 ####################
[3 2 5 1 6]
#################### dataMh2 ####################
[4 3 2]
#################### dataMh3 ####################
[6]
[6]
#################### dataMh4 ####################
[4 3 2 5 1]
[4 3 2 5 1]
数组内双冒号的用法 [::]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 导入需要用到的package
import numpy as np
import json

# 假设 data 是一维数组
datatest = np.array([4, 3, 2, 5, 1,6])

# 两个冒号在前,一个正整数数字在后,取数组,每一个下标为该数字倍数的数组,组成新的数组 (第一个数下表为0 也包含)
data2Mh1 = datatest[::1]
print("#################### data2Mh1 ####################")
print(data2Mh1)
# 两个冒号在前,一个正整数数字在后,取数组,每一个下标为该数字倍数的数组,组成新的数组 (第一个数下表为0 也包含)
data2Mh2 = datatest[::2]
print("#################### data2Mh2 ####################")
print(data2Mh2)
#两个冒号在后,一个正整数数字在后,取以左侧数字为数组下标以及以后的数字(包含下标)
data2Mh3 = datatest[1::]
print("#################### data2Mh3 ####################")
print(data2Mh3)
#两个冒号在后,一个正整数数字在后,取以左侧数字为数组下标以及以后的数字(包含下标)
data2Mh4 = datatest[2::]
print("#################### data2Mh4 ####################")
print(data2Mh4)

#两个冒号在后,一个负整数数字在后,先将数组数据倒叙排列,每一个下标为该数字倍数的数组,组成新的数组 (第一个数下表为0 也包含)
data2Mh5 = datatest[::-1]
print("#################### data2Mh5 ####################")
print(data2Mh5)
#两个冒号在后,一个负整数数字在后,先将数组数据倒叙排列,每一个下标为该数字倍数的数组,组成新的数组 (第一个数下表为0 也包含)
data2Mh6 = datatest[::-2]
print("#################### data2Mh6 ####################")
print(data2Mh6)
##数字在前,且为负整数,两个冒号在后,则是表示,取以数组长度加数字(负数数字)右侧数字为数组下标以及以后的数字(包含下标) 6 +(-1)=5 即 datatest[-1::] = datatest[5:]
data2Mh7 = datatest[-1::]
data2Mh77 = datatest[5:]
print("#################### data2Mh7 ####################")
print(data2Mh7)
print(data2Mh77)
##数字在前,且为负整数,两个冒号在后,则是表示,取以数组长度加数字(负数数字)右侧数字为数组下标以及以后的数字(包含下标) 6 +(-2)=4 即 datatest[-2::] = datatest[4:]
data2Mh8 = datatest[-2::]
data2Mh88 = datatest[4:]
print("#################### data2Mh8 ####################")
print(data2Mh8)
print(data2Mh88)

输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#################### data2Mh1 ####################
[4 3 2 5 1 6]
#################### data2Mh2 ####################
[4 2 1]
#################### data2Mh3 ####################
[3 2 5 1 6]
#################### data2Mh4 ####################
[2 5 1 6]
#################### data2Mh5 ####################
[6 1 5 2 3 4]
#################### data2Mh6 ####################
[6 5 3]
#################### data2Mh7 ####################
[6]
[6]
#################### data2Mh8 ####################
[1 6]
[1 6]
二维数组数组内双冒号的用法 [1:,1:]

逗号前的为对一维数组操作
逗号后的为对二位数组操作

1
2
3
4
5
6
7
8
9
10
# 导入需要用到的package
import numpy as np
import json

# 假设 data 是二维数组
datatest3 = np.array([[4,3],[2,5],[1,6]])

data2data = datatest3[1:,1:]
print("#################### data2data ####################")
print(data2data)

输出为

1
2
3
#################### data2data ####################
[[5]
[6]]

dot 数组相乘

1
2
3
4
5
6
7
8
9
10
11
# 导入需要用到的package
import numpy as np
import json
print("#################### dot ####################")

# 等于 3*2+1*1+1*1+1*1+1*1 = 10
a = np.array([3, 1, 1, 1, 1])
b = np.array([2, 1, 1, 1, 1])
print(np.dot(a, b))
```
输出为

#################### dot ####################
10

```

一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

继开 wechat
欢迎加我的微信,共同交流技术